class MyClass<T> {
    public value: T // 设为泛型，后期调用时候再定义
    constructor(value: T) {
        this.value = value
    }


    do(input: T): T {
        this.value = input
        console.log('处理数据', this.value)
        return input
    }
}


const main = new MyClass<object>({
    subject: '数学'
})

console.log(main)

main.do({    // 此时传参类型只能是 object 因为上面在调用的同时就定义了
    subject: '英语'
})


const main1 = new MyClass<string>('qqqqqqqqqqq')

console.log(main1)

main1.do('33333333')    // 此时传参类型只能是 string 因为上面在调用的同时就定义了
